home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 7 / Amiga Format AFCD07 (Dec 1996, Issue 91).iso / serious / shareware / programming / emacs-complete / fsf / emacs / src / s / usg5-4-2.h < prev    next >
C/C++ Source or Header  |  1993-08-11  |  2KB  |  47 lines

  1. /* s/ file for System V release 4.2.  */
  2.  
  3. #include "usg5-4.h"
  4.  
  5. /* pcg@aber.ac.uk says this is useless since fork does copy-on-write
  6.    #define HAVE_VFORK */
  7. /* fnf@cygnus.com says these exist.  */
  8. #define HAVE_TCATTR
  9. #if 0 /* autoconf should take care of this.  */
  10. #define HAVE_GETHOSTNAME
  11. #define HAVE_RANDOM
  12. #endif
  13. /* #define HAVE_GETWD  (appears to be buggy on SVR4.2) */
  14.  
  15. /* Info from fnf@cygnus.com suggests this is appropriate.  */
  16. #define POSIX_SIGNALS
  17.  
  18. /* We don't need the definition from usg5-3.h with POSIX_SIGNALS.  */
  19. #undef sigsetmask
  20. #undef HAVE_SYSV_SIGPAUSE
  21.  
  22. /* This is the same definition as in usg5-4.h, but with sigblock/sigunblock
  23.    rather than sighold/sigrelse, which appear to be BSD4.1 specific and won't
  24.    work if POSIX_SIGNALS is defined.  It may also be appropriate for SVR4.x
  25.    (x<2) but I'm not sure.   fnf@cygnus.com */
  26. /* This sets the name of the slave side of the PTY.  On SysVr4,
  27.    grantpt(3) forks a subprocess, so keep sigchld_handler() from
  28.    intercepting that death.  If any child but grantpt's should die
  29.    within, it should be caught after sigrelse(2). */
  30.  
  31. #undef PTY_TTY_NAME_SPRINTF
  32. #define PTY_TTY_NAME_SPRINTF            \
  33.   {                        \
  34.     char *ptsname(), *ptyname;            \
  35.                         \
  36.     sigblock(sigmask(SIGCLD));            \
  37.     if (grantpt(fd) == -1)            \
  38.       fatal("could not grant slave pty");    \
  39.     sigunblock(sigmask(SIGCLD));        \
  40.     if (unlockpt(fd) == -1)            \
  41.       fatal("could not unlock slave pty");    \
  42.     if (!(ptyname = ptsname(fd)))        \
  43.       fatal ("could not enable slave pty");    \
  44.     strncpy(pty_name, ptyname, sizeof(pty_name)); \
  45.     pty_name[sizeof(pty_name) - 1] = 0;        \
  46.   }
  47.